-- LA140260.A
--
--                             Grant of Unlimited Rights
--
--     Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
--     F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained 
--     unlimited rights in the software and documentation contained herein.
--     Unlimited rights are defined in DFAR 252.227-7013(a)(19).  By making 
--     this public release, the Government intends to confer upon all 
--     recipients unlimited rights  equal to those held by the Government.  
--     These rights include rights to use, duplicate, release or disclose the 
--     released technical data and computer software in whole or in part, in 
--     any manner and for any purpose whatsoever, and to have or permit others 
--     to do so.
--
--                                    DISCLAIMER
--
--     ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
--     DISCLOSED ARE AS IS.  THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED 
--     WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
--     SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE 
--     OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
--     PARTICULAR PURPOSE OF SAID MATERIAL.
--*
--
-- OBJECTIVE:
--      See LA140262.AM.
--
-- TEST DESCRIPTION:
--      See LA140262.AM.
--
-- SPECIAL REQUIREMENTS:
--      See LA140262.AM.
--
-- TEST FILES:
--      This test consists of the following files:
--      -> LA140260.A
--         LA140261.A
--         LA140262.AM
--         LA140263.A
--
-- PASS/FAIL CRITERIA:                
--      See LA140262.AM.
--
-- CHANGE HISTORY:
--     07 DEC 96   SAIC        ACVC 2.1: Initial version.
--
--!

package LA14026_0 is
     type basic_rec is tagged 
          record 
               null;
          end record;
end LA14026_0;

---------------------------------------------------------

with LA14026_0;
generic
     type data_type is private;
     type serial_type is range <>;
     serial_init : serial_type;
package LA14026_1 is

     pragma Elaborate_Body;

     function get_serial_num return serial_type;

     type node_type is new LA14026_0.basic_rec with 
          record
               data_field : data_type;
               serial_no : serial_type := get_serial_num;
          end record;
end LA14026_1;

---------------------------------------------------------

package body LA14026_1 is
     serial : serial_type := serial_init;
     function get_serial_num return serial_type is
     begin
          serial := serial + 1;
          return serial;
     end;
end LA14026_1;

---------------------------------------------------------

package LA14026_2 is
     subtype serial_type is integer range 0..5;
     subtype data_type is integer range 0..100;

     type data_rec is record
          F1 : data_type := data_type'first;
          F2 : data_type := data_type'last;
     end record;
end LA14026_2;
